package acwing;

import java.io.BufferedInputStream;
import java.util.Scanner;

public class mergeSort {
    static int[] q, tmp;
    static int n;

    public static void main(String[] args) {
        Scanner in = new Scanner(new BufferedInputStream(System.in));
//        int[] q, tmp;
//        int n;
        q = new int[100010];
        tmp = new int[100010];
        n = in.nextInt();
        for(int i = 0; i < n; i ++){
            q[i] = (int) (Math.random() * 10000);
        }
        merge_Sort(q, 0, n - 1);
        for(int i = 0; i < n; i ++){
            if(i >= 10 && i % 10 == 0){
                System.out.println();
            }
            System.out.print(q[i] + " ");
        }
    }
    public static void merge_Sort(int[] q, int l, int r){
        if(l >= r) return;
        int mid = l + r >> 1;
        merge_Sort(q, l, mid);
        merge_Sort(q, mid + 1, r);
        int k = 0, i = l, j = mid + 1;
        while (i <= mid && j <= r) {
            if(q[i] < q[j]) tmp[k ++ ] = q[i ++ ];
            else tmp[k ++ ] = q[j ++ ];
        }
        while (i <= mid) tmp[k ++ ] = q[i ++ ];
        while (j <= r) tmp[k ++ ] = q[j ++ ];
        for(i = l, j = 0; i <= r; i ++, j ++ ){
            q[i] = tmp[j];
        }
    }
}
